class Enum {
    constructor(enumObj) {
        this.enumObj = enumObj;
    }

    // 获取枚举标签
    getLabel(value) {
        for (const key in this.enumObj) {
            const item = this.enumObj[key];
            if (item.value === value || key === value) {
                return item.label || key;
            }
        }
        return null;
    }

    // 获取枚举值
    getValue(label) {
        for (const key in this.enumObj) {
            const item = this.enumObj[key];
            if (item.label === label || key === label) {
                return item.value || key;
            }
        }
        return null;
    }

    // 获取选项列表（用于下拉框）
    getOptions() {
        return Object.keys(this.enumObj).map(key => ({
            label: this.enumObj[key].label || key,
            value: this.enumObj[key].value || key
        }));
    }

    // 静态创建方法
    static from(enumObj) {
        return new Enum(enumObj);
    }
}

export default Enum;